Skip to content

Comments

feat: add Open-Box Deals Aggregator example#39

Merged
simantak-dabhade merged 3 commits intotinyfish-io:mainfrom
Shubham-275:add-openbox-deals
Feb 17, 2026
Merged

feat: add Open-Box Deals Aggregator example#39
simantak-dabhade merged 3 commits intotinyfish-io:mainfrom
Shubham-275:add-openbox-deals

Conversation

@Shubham-275
Copy link
Contributor

@Shubham-275 Shubham-275 commented Feb 7, 2026

A warehouse receipt-themed deal finder that uses TinyFish Agent API to scrape Amazon, Best Buy, Target, Walmart, and 4 other retailers simultaneously. Features live browser previews, automatic savings calculations, and sorts results by best discount.

@coderabbitai
Copy link

coderabbitai bot commented Feb 7, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Added Demo
Comment on lines +187 to +188
if STATIC_DIR.exists():
app.mount("/static", StaticFiles(directory=str(STATIC_DIR)), name="static")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why would the directory not exist if it's in the repo folder?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohh this was defensive coding for when running the app from different working directories during development. Since it's always in the repo now, I can simplify it to:

app.mount("/static", StaticFiles(directory=str(STATIC_DIR)), name="static")

should i remove the check?



# =============================================================================
# HELPER FUNCTIONS
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these below look a bit fragile, but i see also above there's some json definition in the goal as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, that was a defense against malformed json response which was causing issues. and it handles edge cases quite well too.

return sanitized.strip()


def validate_url(url: str) -> Optional[str]:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i don't think this is going to actually do anything in practice against someone with intent to break, we're going to a bunch of trusted sites in a hardcoded array anyways, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah all sites are trusted platforms and hardcoded, just added it as precaution if mino returns malicious url somehow, but yeah its an overkill when data is from trusted platforms. should i remove it as well ?

@lozzle lozzle self-requested a review February 12, 2026 01:49
@simantak-dabhade simantak-dabhade merged commit b7134e1 into tinyfish-io:main Feb 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants